// 第一种函数重载的方式
declare function func(name:string): void;
declare function func(age: number): void;

// func('a')

// 第二种函数重载的方式
interface Func {
  (name: string): void;
  (age: number): void;
}

declare const func2: Func

// 第三种函数重载的方式
type Func3 = ((name: string) => void) & ((age: number) => void)

declare const func3: Func3